package com.thinkgsp.jxc.persistence;

import java.math.BigDecimal;
import java.sql.Date;
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.thinkgsp.jxc.model.RpBillCheckLog;
import com.thinkgsp.jxc.model.RpCheckId;

/**
 * 应收应付核销日志
 * @author evan
 *
 */
public interface RpCheckLogMapper {

	/**
	 * 根据Id获取核销日志
	 * @param id
	 * @return
	 */
	public RpBillCheckLog getRpBillCheckLog(Long id);
	
	/**
	 * 根据核销Id获取核销日志列表
	 * @param checkId
	 * @return
	 */
	public List<RpBillCheckLog> getCheckLogListByCheckId(Long checkId);
	
	/**
	 * 根据日期与客户获取核销日期列表
	 * @param begDate
	 * @param endDate
	 * @param custId
	 * @return
	 */
	public List<RpBillCheckLog> getCheckLogListByDate(@Param("direct")Integer direct, @Param("begDate")Date begDate,@Param("endDate")Date endDate,@Param("custId")Integer custId);
	
	/**
	 * 根据期间与客户获取核销日志
	 * @param direct 方向
	 * @param begPeriod 开始期间 如2013.01
	 * @param endPeriod 截止期间 如2013.12
	 * @param custId 客户Id
	 * @return
	 */
	public List<RpBillCheckLog> getCheckLogListByPeriod(@Param("direct") Integer direct,@Param("begPeriod") BigDecimal begPeriod,@Param("endPeriod") BigDecimal endPeriod,@Param("custId")Integer custId);
	
	/**
	 * 插入核销日志
	 * @param log
	 */
	public void insertCheckLog(RpBillCheckLog log);
	
	/**
	 * 删除核销日期
	 * @param id
	 */
	public void deleteCheckLog(Long id);
	
	/**
	 * 根据checkId删除核销日志
	 * @param checkId
	 */
	public void deleteCheckLogByCheckId(Long checkId);
	
	/**
	 * 创建CheckId
	 * @param checkId
	 */
	public void newCheckId(RpCheckId checkId);
}
